// Copyright 2009 the Sputnik authors.  All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
info: The FunctionBody must be SourceElements
es5id: 13_A7_T1
description: Using only SourceElements within the FunctionBody
---*/

function Test() {
    function __func(){'ground control to major tom'};
//////////////////////////////////////////////////////////////////////////////
//CHECK#1
    if (typeof __func !== "function") {
    	throw new Test262Error('#1: typeof __func === "function". Actual: typeof __func ==='+typeof __func);
    }
//
//////////////////////////////////////////////////////////////////////////////

    function __func__2(){b};
//////////////////////////////////////////////////////////////////////////////
//CHECK#2
    if (typeof __func__2 !== "function") {
    	throw new Test262Error('#2: typeof __func__2 === "function". Actual: typeof __func__2 ==='+typeof __func__2);
    }
//
//////////////////////////////////////////////////////////////////////////////

    function __func__3(){1};
//////////////////////////////////////////////////////////////////////////////
//CHECK#3
    if (typeof __func__3 !== "function") {
    	throw new Test262Error('#3: typeof __func__3 === "function". Actual: typeof __func__3 ==='+typeof __func__3);
    }
//
//////////////////////////////////////////////////////////////////////////////

    function __func__4(){1+c};
//////////////////////////////////////////////////////////////////////////////
//CHECK#4
    if (typeof __func__4 !== "function") {
    	throw new Test262Error('#4: typeof __func__4 === "function". Actual: typeof __func__4 ==='+typeof __func__4);
    }
//
//////////////////////////////////////////////////////////////////////////////

    function __func__5(){inc(d)};
//////////////////////////////////////////////////////////////////////////////
//CHECK#5
    if (typeof __func__5 !== "function") {
    	throw new Test262Error('#5: typeof __func__5 === "function". Actual: typeof __func__5 ==='+typeof __func__5);
    }
//
//////////////////////////////////////////////////////////////////////////////

    function __func__6(){var \u0042 = 1;};
//////////////////////////////////////////////////////////////////////////////
//CHECK#6
    if (typeof __func__6 !== "function") {
    	throw new Test262Error('#6: typeof __func__6 === "function". Actual: typeof __func__6 ==='+typeof __func__6);
    }
//
//////////////////////////////////////////////////////////////////////////////

//function __func__7(){var \u003d = 1;};
////////////////////////////////////////////////////////////////////////////////
////CHECK#7
//if (typeof __func__7 !== "function") {
//	throw new Test262Error('#7: The FunctionBody must be SourceElements');
//}
//
//////////////////////////////////////////////////////////////////////////////
}

// preheat
const NUMBER_OF_PREHEAT = 1;
for (let i = 0; i < NUMBER_OF_PREHEAT; i++) {
    Test();
}

ArkTools.jitCompileAsync(Test);
assert.sameValue(ArkTools.waitJitCompileFinish(Test), true, '[JIT] JIT disabled.');

// test
const NUMBER_OF_TEST = 1; // or 2
for (let i = 0; i < NUMBER_OF_PREHEAT; i++) {
    Test();
}
